function testPreconditionerParams3D(doSvd)
    precision='double';
    if doSvd
        size_list = 2:2:16;
    else
        size_list = 2*unique(round(logspace(0,6.5*log(2)/log(10))));
        size_list=size_list(size_list>50);
    end
    result_list=zeros([7,size(size_list,2)]);
    idx = 0;
    for n = size_list
        idx = idx +1;
        [NoPrecondIter,JacobianPrecondIter,...
        NoPrecondCondNumPowerMethod,JacobianPrecondCondNumPowerMethod,...
        NoPrecondCondNumByDef,JacobianPrecondCondNumByDef] = testCalculatePreconditioner3D(n,doSvd,precision);
        result_list(1,idx) = NoPrecondIter;
        result_list(2,idx) = JacobianPrecondIter;
        result_list(3,idx) = NoPrecondCondNumPowerMethod;
        result_list(4,idx) = JacobianPrecondCondNumPowerMethod;
        result_list(5,idx) = NoPrecondCondNumByDef;
        result_list(6,idx) = JacobianPrecondCondNumByDef;
        result_list(7,idx) = n;
    end
    if (doSvd)
        fn=['figures' filesep 'precond_results_3D_with_svd.mat'];
        name='3DnoprecondSVD';
        figure('name',name);
        plot(size_list,result_list(3,:),'--r',size_list,result_list(5,:),'-b');
        save_pic(name);
        name='3DwithprecondSVD';
        figure('name',name);
        plot(size_list,result_list(4,:),'--r',size_list,result_list(6,:),'-b');
        save_pic(name);
    else
        fn=['figures' filesep 'precond_results_3D_no_svd.mat'];
        name='3DnoprecondCGIter';
        figure('name',name);
        plot(size_list,result_list(1,:),'-b');
        save_pic(name);
        name='3DwithprecondCGIter';
        figure('name',name);
        plot(size_list,result_list(2,:),'-b');
        save_pic(name);
        name='3DnoprecondNormIter';
        figure('name',name);
        plot(size_list,result_list(3,:),'-b');
        save_pic(name);
        name='3DwithprecondNormIter';
        figure('name',name);
        plot(size_list,result_list(4,:),'-b');
        save_pic(name);
    end
    save(fn,'result_list');
end